// 导入路由注册的模块信息，通过action做处理
import { asyncRouter, constantRoutes } from '@/router'
// 静态路由的导入

// vuex 当中专门管理权限的模块
const state = {
  routes: []
}
const mutations = {
  setRoutes(state, data) {
    // 在这里拼接真正德菜单=静态路由+筛选后德动态路由
    state.routes = [
      ...constantRoutes, ...data
    ]
  }
}
const actions = {
  filterRouter(store, menus) {
    // 过滤路由
    // 需要得到当前用户的权限列表 menus（调用的时候传递过来）
    // 需要得到路由列表
    // 过滤路由列表，如果有name 存在于menus 就能继续存在 includes数组的方法
    const routes = asyncRouter.filter(route => {
      return menus.includes(route.name)
    })
    console.log('路由过滤的结果', routes)
    // 准备恢复菜单
    store.commit('setRoutes', routes)

    // 将过滤的结果返回出去
    return routes
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
